package org.sbbs.app.security.webapp.action;

import java.util.StringTokenizer;
import javax.servlet.http.HttpServletRequest;
import org.sbbs.app.security.model.Role;
import org.sbbs.app.security.service.RoleManager;
import org.sbbs.base.webapp.action.BaseJqgridEditAction;

public class RoleEditAction extends BaseJqgridEditAction {

	private Role model;
	private RoleManager roleManager;

	public Role getModel() {
		return model;
	}

	public void setModel(Role model) {
		this.model = model;
	}

	public RoleManager getRoleManager() {
		return roleManager;
	}

	public void setRoleManager(RoleManager roleManager) {
		this.roleManager = roleManager;
	}

	public String edit() {
		if (getModelId() != null) {
			this.setModel(this.roleManager.get(Long
					.parseLong(this.getModelId())));
			this.setEditType(EDIT_TYPE_EDIT);
		} else {
			this.setModel(new Role());
			this.setEditType(EDIT_TYPE_NEW);
		}
		return this.SUCCESS;

	}

	public String save() {
		try {
			HttpServletRequest req = this.getRequest();
			boolean isNew = (this.getEditType() == 1);
			this.getRoleManager().save((Role) model);
			this.setMessage(getText((isNew) ? "role.added" : "role.updated",
					"no msg key found,save successed."));
		} catch (Exception e) {
			this
					.setMessage(getText("error.saved", new String[]{e
							.getMessage()}));
			this.setReturnCode(RETURN_STATUS_ERROR);
		}
		return this.SUCCESS;
	}

	public String delete() {
		try {

			StringTokenizer ids = new StringTokenizer(this.getDelIds(), ",");
			while (ids.hasMoreTokens()) {
				Long removeId = Long.parseLong(ids.nextToken());
				this.getRoleManager().remove(removeId);
			}
			this.setMessage(getText("role.deleted",
					"no msg key found,delete successed."));
		} catch (Exception e) {
			this.setMessage(getText("error.deleted", new String[]{e
					.getMessage()}));
			this.setReturnCode(RETURN_STATUS_ERROR);
		}
		return this.SUCCESS;
	}

}
